import requests
import re
import csv

'''
目标：获取豆瓣top250
步骤：
1 打开网页
2 查看网页源代码，检查源代码中是否包含我们需要的内容，否则需要寻找其他的request
3 源代码中有内容，使用正则表达式去提取想要的有效信息
'''

url = "https://movie.douban.com/top250"

# 处理反爬第一个手段就是设置UA
headers = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
}

resp = requests.get(url, headers=headers)
page_content = resp.text
# print(page_content)
# obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)</span>',re.S)
obj = re.compile(r'<li>.*?<em class="">(?P<id>\d+)</em>.*?alt="(?P<name>.*?)" src.*?</li>',re.S)
it = obj.finditer(page_content)

# 参数 newline=‘’ 可以去除空行
f = open("data.csv",mode="w",encoding='utf-8',newline='')
csvwriter = csv.writer(f)
for i in it:
    # print(i.group("id"))
    # print(i.group("name"))
    dic = i.groupdict() # 把前面设置的group自动保存成字典
    # 如果对某一项需要单独处理，例如strip() 去掉前后的空格
    # dic['id'] = dic['id'].strip()
    csvwriter.writerow(dic.values())

f.close()
